home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / PicturePatience.dxr / scripts_4_misc. handlers.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  5.4 KB  |  210 lines

  1. global waste, reserve, stock, win, points, pootimer, deals, foundation
  2.  
  3. on reshuffle arg
  4.   sprite(arg).member = member("backofcard", "playing cards")
  5.   sprite(19).member = member("block", "playing cards")
  6.   sprite(17).member = member("block", "playing cards")
  7.   ass = []
  8.   repeat with i = 1 to waste.cards.count
  9.     ass.add([#rank: waste.cards[i].rank, #suit: waste.cards[i].suit])
  10.   end repeat
  11.   waste.cards.deleteAll()
  12.   return ass
  13. end
  14.  
  15. on shuffle
  16.   ranks = ["ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "jack", "queen", "king"]
  17.   suits = ["hearts", "diamonds", "clubs", "spades"]
  18.   unshuffledCards = []
  19.   shuffledCards = []
  20.   repeat with i = 1 to 2
  21.     repeat with rank in ranks
  22.       repeat with suit in suits
  23.         unshuffledCards.add([#rank: rank, #suit: suit])
  24.       end repeat
  25.     end repeat
  26.     repeat while unshuffledCards.count > 0
  27.       shuffledCards.add(unshuffledCards[random(unshuffledCards.count)])
  28.       unshuffledCards.deleteOne(shuffledCards[shuffledCards.count])
  29.     end repeat
  30.   end repeat
  31.   return shuffledCards
  32. end
  33.  
  34. on checkwin
  35.   if points = (104 * 10) then
  36.     win = "yes"
  37.     if voidp(pootimer) then
  38.       pootimer = timeout("poo").new(150, #gotoit)
  39.     end if
  40.   else
  41.     checklose()
  42.   end if
  43. end
  44.  
  45. on gotoit
  46.   pootimer.forget()
  47.   pootimer = VOID
  48.   go("gameover")
  49. end
  50.  
  51. on makesymbol arg
  52.   return string(arg).symbol
  53. end
  54.  
  55. on getlist arg
  56.   if arg = 19 then
  57.     return waste.getlastcard()
  58.   end if
  59.   if (arg >= 20) and (arg <= 28) then
  60.     return reserve[makesymbol(arg)].getlastcard()
  61.   end if
  62. end
  63.  
  64. on checklose
  65.   if stock.cards.count = 0 then
  66.     if deals = 1 then
  67.       repeat with shit = 19 to 19
  68.         if sprite(shit).member.name = "block" then
  69.           next repeat
  70.         end if
  71.         repeat with cakes = 29 to 36
  72.           if foundation[makesymbol(cakes)].cards.count = 0 then
  73.             if (getSuit(sprite(shit).member.name) = symbol(sprite(cakes).mysuit)) and (getValue(sprite(shit).member.name) = getOff(string(sprite(cakes).baserank))) then
  74.               abort()
  75.             end if
  76.             next repeat
  77.           end if
  78.           if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) + 1)) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
  79.             abort()
  80.           end if
  81.         end repeat
  82.       end repeat
  83.       repeat with shit = 20 to 28
  84.         if sprite(shit).member.name = "block" then
  85.           if waste.cards.count > 0 then
  86.             abort()
  87.           end if
  88.         end if
  89.         repeat with cakes = 29 to 36
  90.           if foundation[makesymbol(cakes)].cards.count = 0 then
  91.             if (getSuit(sprite(shit).member.name) = symbol(sprite(cakes).mysuit)) and (getValue(sprite(shit).member.name) = getOff(string(sprite(cakes).baserank))) then
  92.               abort()
  93.             end if
  94.             next repeat
  95.           end if
  96.           if (getValue(sprite(shit).member.name) = (getValue(sprite(cakes).member.name) + 1)) and (getSuit(sprite(shit).member.name) = getSuit(sprite(cakes).member.name)) then
  97.             abort()
  98.           end if
  99.         end repeat
  100.       end repeat
  101.       win = "no"
  102.       pootimer = timeout("fucked").new(130, #gotoit)
  103.     end if
  104.   end if
  105. end
  106.  
  107. on getValue arg
  108.   if (arg contains "hearts") or (arg contains "spades") then
  109.     return getOff(chars(arg, 1, arg.length - 7))
  110.   else
  111.     if arg contains "diamonds" then
  112.       return getOff(chars(arg, 1, arg.length - 9))
  113.     else
  114.       if arg contains "clubs" then
  115.         return getOff(chars(arg, 1, arg.length - 6))
  116.       end if
  117.     end if
  118.   end if
  119. end
  120.  
  121. on getOff numba
  122.   if numba = "ace" then
  123.     return 1
  124.   else
  125.     if numba = "two" then
  126.       return 2
  127.     else
  128.       if numba = "three" then
  129.         return 3
  130.       else
  131.         if numba = "four" then
  132.           return 4
  133.         else
  134.           if numba = "five" then
  135.             return 5
  136.           else
  137.             if numba = "six" then
  138.               return 6
  139.             else
  140.               if numba = "seven" then
  141.                 return 7
  142.               else
  143.                 if numba = "eight" then
  144.                   return 8
  145.                 else
  146.                   if numba = "nine" then
  147.                     return 9
  148.                   else
  149.                     if numba = "ten" then
  150.                       return 10
  151.                     else
  152.                       if numba = "jack" then
  153.                         return 11
  154.                       else
  155.                         if numba = "queen" then
  156.                           return 12
  157.                         else
  158.                           if numba = "king" then
  159.                             return 13
  160.                           end if
  161.                         end if
  162.                       end if
  163.                     end if
  164.                   end if
  165.                 end if
  166.               end if
  167.             end if
  168.           end if
  169.         end if
  170.       end if
  171.     end if
  172.   end if
  173. end
  174.  
  175. on getSuit arg
  176.   if arg contains "hearts" then
  177.     return #hearts
  178.   else
  179.     if arg contains "diamonds" then
  180.       return #diamonds
  181.     else
  182.       if arg contains "clubs" then
  183.         return #clubs
  184.       else
  185.         if arg contains "spades" then
  186.           return #spades
  187.         end if
  188.       end if
  189.     end if
  190.   end if
  191. end
  192.  
  193. on getSuitCo arg
  194.   if arg contains "hearts" then
  195.     return #red
  196.   else
  197.     if arg contains "diamonds" then
  198.       return #red
  199.     else
  200.       if arg contains "clubs" then
  201.         return #black
  202.       else
  203.         if arg contains "spades" then
  204.           return #black
  205.         end if
  206.       end if
  207.     end if
  208.   end if
  209. end
  210.